/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Modelo;

import BaseDatos.Conexion;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

/**
 *
 * @author JEANPIERE
 */
public class Pregunta {
     Connection cn;
    private int indice; 
    private String contenido;
    private String alt1;
    private String alt2;
    private String alt3;
    private String alt4;
    private String alt5;
    private int rpta1;
    private int rpta2;
    private int rpta3;
    private int rpta4;
    private int rpta5;
        

    public Pregunta() {
       Conexion con = new Conexion();
       cn = con.conectar();
     
    }
    
    
    
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    
    
 public boolean unicaRespuesta(){ // para saber si nuestra pregunta tiene 1 alternativas o varias
     boolean unico=false;
        int contadorDeRespuestas=0;
        int respuestas[]={rpta1,rpta2,rpta3,rpta4,rpta5};
        for(int i=0;i<respuestas.length;i++){
            if(respuestas[i]!=0)
            contadorDeRespuestas++;
        }
        
        if(contadorDeRespuestas==1)
            unico= true;
        
        return unico;
        
    }
 
  
     public void asignarDatos(int numeroDePregunta)
    {
       String numero=Integer.toString(numeroDePregunta);
        try
        {
            String sql = "SELECT * FROM pregunta WHERE codigo= "+numero;
            PreparedStatement cmd = cn.prepareStatement(sql);
            ResultSet rs = cmd.executeQuery();
            if(rs.next())
            {
                indice=rs.getInt(1);
                contenido= rs.getString(2);
                alt1 = rs.getString(3);
                alt2 = rs.getString(4);
                alt3 = rs.getString(5);
                alt4 = rs.getString(6);
                alt5 = rs.getString(7);
                rpta1 = rs.getInt(8);
                rpta2 = rs.getInt(9);
                rpta3 = rs.getInt(10);
                rpta4 = rs.getInt(11);
                rpta5 = rs.getInt(12);
            }
            cmd.close();
            cn.close();
        }
        catch(Exception ex)
        {
            System.out.println("Error: " + ex.getMessage());
        }
        
    }
     
     public boolean verificarPregunta(String respuestasContestadas[]){  // entrada de respuestas por ejemplo el arreglo de 1,3 quiere decir que el 
                int respuestasDeAlumno[]= {0,0,0,0,0};
                int respuestas[]={rpta1,rpta2,rpta3,rpta4,rpta5};// respuestas verdaderas con el formato de 10111 por jemplo
                                                                   // la primera clave y la tercera clave son la respuesta
                                                                   // entonces vamos a convertirlo a formato como esta nuestra base de datos
                                                                    // es decir si las clave solo son la 1 y la 3 el formato del arreglo 
                                                                    //en las  respuestas debe ser  1,0,1,0,0   
         for (String respuestasContestada : respuestasContestadas) {
             int valor = Integer.parseInt(respuestasContestada);
             respuestasDeAlumno[valor-1]=1;
         }
         
          // cada alternativa tiene el valor de 1 cuando es la correcta y 0 cuando no la es
         boolean verificar=true;
        
         for(int i=0;i<respuestasDeAlumno.length;i++){
             if(respuestasDeAlumno[i]!=respuestas[i]){
                 verificar=false;
                 i=respuestasDeAlumno.length;
             }
             
         }
         
         return verificar;
     }
     
       public String getContenido() {
        return contenido;
    }

    public void setContenido(String contenido) {
        this.contenido = contenido;
    }

    public String getAlt1() {
        return alt1;
    }

    public void setAlt1(String alt1) {
        this.alt1 = alt1;
    }

    public String getAlt2() {
        return alt2;
    }

    public void setAlt2(String alt2) {
        this.alt2 = alt2;
    }

    public String getAlt3() {
        return alt3;
    }

    public void setAlt3(String alt3) {
        this.alt3 = alt3;
    }

    public String getAlt4() {
        return alt4;
    }

    public void setAlt4(String alt4) {
        this.alt4 = alt4;
    }

    public String getAlt5() {
        return alt5;
    }

    public void setAlt5(String alt5) {
        this.alt5 = alt5;
    }
    

    public int getRpta1() {
        return rpta1;
    }

    public void setRpta1(int rpta1) {
        this.rpta1 = rpta1;
    }

    public int getRpta2() {
        return rpta2;
    }

    public void setRpta2(int rpta2) {
        this.rpta2 = rpta2;
    }

    public int getRpta3() {
        return rpta3;
    }

    public void setRpta3(int rpta3) {
        this.rpta3 = rpta3;
    }

    public int getRpta4() {
        return rpta4;
    }

    public void setRpta4(int rpta4) {
        this.rpta4 = rpta4;
    }

    public int getRpta5() {
        return rpta5;
    }

    public void setRpta5(int rpta5) {
        this.rpta5 = rpta5;
    }

    public int getIndice() {
        return indice;
    }

    public void setIndice(int indice) {
        this.indice = indice;
    }
    
   

    
}
